package com.zhuhjay.service.system.wxmp.handler;

import com.zhuhjay.common.wxmp.handler.AbstractHandler;
import com.zhuhjay.service.system.model.entity.SystemOauth;
import com.zhuhjay.service.system.service.SystemOauthService;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.session.WxSessionManager;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.Map;

/**
 * @author ZhuHJay
 * @date 2023/8/2 19:48
 */
@Slf4j
@Component
public class UnsubscribeHandler extends AbstractHandler {

    @Resource
    private SystemOauthService oauthService;

    @Override
    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
                                    Map<String, Object> context, WxMpService wxMpService,
                                    WxSessionManager sessionManager) {

        String openid = wxMessage.getFromUser();
        SystemOauth oauth = oauthService.lambdaQuery().eq(SystemOauth::getOpenId, openid).one();
        if (oauth != null) {
            oauth.setStatus(0);
            oauthService.lambdaUpdate().update(oauth);
        }
        return null;
    }

}
